package br.com.beautycenter.view;

import br.com.beautycenter.Funcionalidades.Bean;
import br.com.beautycenter.Funcionalidades.Data;
import br.com.beautycenter.Funcionalidades.Swing;
import br.com.beautycenter.Funcionalidades.Validacoes;
import br.com.beautycenter.DAO.PersisteTipoTratamento;
import br.com.beautycenter.DAO.PersisteTratamento;
import br.com.beautycenter.bean.TipoTratamento;
import br.com.beautycenter.bean.Tratamento;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class CadastroTratamento extends javax.swing.JFrame {

    PersisteTratamento persisteTratamento = new PersisteTratamento();
    PersisteTipoTratamento persisteTipoTratamento = new PersisteTipoTratamento();
    
    Tratamento tratamento = new Tratamento();
    TipoTratamento tipoTratamento = new TipoTratamento();
    
    Tratamento tratamentoTemp = new Tratamento();
    
    static List<Tratamento> listaTratamento = new ArrayList<Tratamento>(); //Lista com todos os tratamentos 
    static List<TipoTratamento>ListaTiposTratamentos = new ArrayList<>();  //Lista com todos os tipos de tratamento
    
     /**
     * operacao = 0 -> salvar
     * operacao = 1 -> atualizar
     * operacao = 2 -> excluir
     */
    int operacao = 0; 
    int posicao = -1;
    
    
    public void inicializarTela(){
            listaTratamento = persisteTratamento.retornarTratamentos();
            jDtCadastro.setDate(new Date()); //iniciaiza com a data atual
            preencherComboTipoTratamento();
            desativarCampos();
            ativarBotoesIniciar();
            limparCampos();
            Validacoes.inicializarMascaras(); 
            jLabelDtCadastro.setVisible(false);
            jDtCadastro.setVisible(false);
        }
    
    public boolean validarValor(){
        String campoValor = txtValorTratamento.getText().trim();
        if(campoValor.isEmpty()){
            JOptionPane.showMessageDialog(null, "O campo tratamento deve ser preenchido");
            txtValorTratamento.requestFocus();
            return false;
        }else{
            campoValor = campoValor.replace(".", ",");
            Double valor = Validacoes.validarCampoMoeda(campoValor);
            if(valor != null){
                tratamentoTemp.setValorTratamento(valor);
                return true;
            }else{
                JOptionPane.showMessageDialog(null, "Valor informado como valor do tratamento é inválido.");
                txtValorTratamento.requestFocus();
                return false;
            }
        }

    }
    
    public boolean validarDuracao(){
        try {
            String tempo = jSHora.getValue().toString() + ":" + jSMinutos.getValue().toString();
            if(!tempo.equals("00:00")){
                Date duracao = Data.horaSimpels.parse(tempo);
                tratamentoTemp.setTempo(duracao);
                return true;
            }else{
                JOptionPane.showMessageDialog(null, "Duração informada deve ser diferente de zero.");
                return false;
            }
            
        } catch (ParseException ex) {
            JOptionPane.showMessageDialog(null, "Duração informada é inválida.");
            return false;
        }
    }
        
    /**
    * Pega os dados que estão no formulário e insere no objeto tratamento
    */
    public boolean preencherTratamento(){
        
        if(operacao == 2 && operacaoExcluir()){
            JOptionPane.showMessageDialog(null, "Tratamento desativado com sucesso");
            return true;
        }
        
        tratamentoTemp = new Tratamento();

        if(validarNome() && 
           validarDescricao() && 
           validarValor() && 
           validarDuracao() && 
           validarTipoTratamento()){      

            Date date = new Date();  
            tratamentoTemp.setDtCadastro(date);
            
            //já que vai salvar, copia os dados para os originais
            //tratamento = new Tratamento();

            Bean.copiarTratamento(tratamentoTemp, tratamento);

            //atualiza ou salva o tratamento
            if(operacao == 1)
                persisteTratamento.atualizar(tratamento);
            else {
                persisteTratamento.salvar(tratamento);
                posicao++;
            }

            JOptionPane.showMessageDialog(null, "TRATAMENTO SALVO COM SUCESSO");
            posicao = -1;
            return true;           
        }
        return false;
    }
    
        /**
     * Desativa o funcionário
     */
    public boolean operacaoExcluir(){
 

            listaTratamento.get(posicao).setAtivoTratamento(false);

            persisteTratamento.atualizar(listaTratamento.get(posicao));
            listaTratamento = persisteTratamento.retornarTratamentos();

            exibirTratamento();
            return true;

    }
        
    public void preencherComboTipoTratamento(){
        
        ListaTiposTratamentos = persisteTipoTratamento.retornarTipoTratamento();
        
        if(ListaTiposTratamentos.isEmpty()){
            
            tipoTratamento = new TipoTratamento();
            tipoTratamento.setIdTipoTratamento(0);
            tipoTratamento.setNomeTipoTratamento("PACOTE TRATAMENTO");
            persisteTipoTratamento.salvar(tipoTratamento);
            
            tipoTratamento = new TipoTratamento();
            tipoTratamento.setIdTipoTratamento(0);
            tipoTratamento.setNomeTipoTratamento("LASER");
            persisteTipoTratamento.salvar(tipoTratamento);
            
            tipoTratamento = new TipoTratamento();
            tipoTratamento.setIdTipoTratamento(0);
            tipoTratamento.setNomeTipoTratamento("PILATES");
            persisteTipoTratamento.salvar(tipoTratamento);
            
            tipoTratamento = new TipoTratamento();
            tipoTratamento.setIdTipoTratamento(0);
            tipoTratamento.setNomeTipoTratamento("AVULSO");
            persisteTipoTratamento.salvar(tipoTratamento);
            
        }     
        jComboTipoTratamento.removeAllItems();
        jComboTipoTratamento.addItem("");
        for(TipoTratamento item: persisteTipoTratamento.retornarTipoTratamento()){
            jComboTipoTratamento.addItem(item.getNomeTipoTratamento());
        }
        
    }
        
    public void novo(){
        operacao = 0;
        posicao = -1;
        limparCampos(); //limpa os dados
        ativarCampos(); //ativa os campos
        ativarBotoesNovoEditarExcluir();
        jDtCadastro.setCalendar(null);
        jLabelCodigo.disable();
        txtCodigo.disable();

        //cria um novo tratamento
        //OBS: é ideia colocar o idPessoa(0), pois caso cadastrar mais de um usuário na mesma sessão, não vai da pau.
        tratamento = new Tratamento();

    }    
        
    /**
    * Inicialmente os botões ativos serão: <br/>
    * btnNovo<br/>
    * btnEditar<br/>
    * btnPesquisar<br/>
    * btnSair<br/>
    */
    public void ativarBotoesIniciar(){

        Swing.desativarCampos(jPanelBotoes.getComponents());

        //se a lista estiver vazia, cria um novo
        if(listaTratamento.isEmpty()){
            novo();
        }else if(posicao < 0){
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
        }else {
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
            btnEditar.setEnabled(true);
            btnExcluir.setEnabled(true);
        }
    }
        
    /**
    * Quanto clicar em Novo ou Editar ativará os botões: <br/>
    * btnSalvar<br/>
    * btnCancelar<br/>
    * btnSair<br/>
    */
    public void ativarBotoesNovoEditarExcluir(){
        Swing.desativarCampos(jPanelBotoes.getComponents());
        btnSalvar.setEnabled(true);
        btnCancelar.setEnabled(true);
        btnSair.setEnabled(true);
    }


   public void ativarCampos(){
        Swing.ativarCampos(jPanelTratamento.getComponents());
        txtDescricao.setEnabled(true);
    }

    public void desativarCampos(){
        Swing.desativarCampos(jPanelTratamento.getComponents());
        txtDescricao.setEnabled(false);
    }

    public void limparCampos(){
        Swing.zerarCampos(jPanelTratamento.getComponents());
        txtDescricao.setText("");
        jDtCadastro.setDate(new Date());
    }

    public boolean validarNome(){
        if(!Validacoes.validarNome(txtNomeTratamento.getText().trim())){
            JOptionPane.showMessageDialog(null, "Campo tratamento é obrigatório!");
            txtNomeTratamento.requestFocus();
            return false;
        }

        tratamentoTemp.setNomeTratamento(txtNomeTratamento.getText().trim());
        return true;
    }

    public boolean validarDescricao(){
        if(!Validacoes.validarCampoTexto(txtDescricao.getText().trim())){
            JOptionPane.showMessageDialog(null, "Campo descrição é obrigatório!");
            txtDescricao.requestFocus();
            return false;
        }

        tratamentoTemp.setDescricaoTratamento(txtDescricao.getText().trim());
        return true;
    }

   /**
    * Preenche o formulário com os dados do tratamento. O parâmetro é a posição do item na lista
    * @param posicao 
    */
    public void exibirTratamento(){

        if(listaTratamento.isEmpty()){
            novo();
            return;
        }

        limparCampos();

        txtCodigo.setText(String.valueOf(listaTratamento.get(posicao).getIdTratamento()));
        txtNomeTratamento.setText(listaTratamento.get(posicao).getNomeTratamento());
        txtDescricao.setText(listaTratamento.get(posicao).getDescricaoTratamento());
        
        String tempo[] = Data.horaSimpels.format(listaTratamento.get(posicao).getTempo()).split(":"); //divide o tempo em horas e minutos
        jSHora.setValue(tempo[0]); //tempo[0] = hora
        jSMinutos.setValue(tempo[1]); //tempo[1] = minutos
        
        txtValorTratamento.setText(Validacoes.formatoMoeda.format(listaTratamento.get(posicao).getValorTratamento()));
        jComboTipoTratamento.setSelectedItem(listaTratamento.get(posicao).getTipoTratamento().getNomeTipoTratamento());

        if(listaTratamento.get(posicao).getDtCadastro() != null){
            jDtCadastro.setDate(listaTratamento.get(posicao).getDtCadastro());
        }

        desativarCampos();
    }
        
    /**
    * Verifica se o usuário selecionou algum tipo tratamento. 
    * @return 
    */
    public boolean validarTipoTratamento(){
        int selecionado = jComboTipoTratamento.getSelectedIndex();
        
        //se não for o primeiro, então é válido
        if(selecionado > 0){
            tipoTratamento = new TipoTratamento();
            tipoTratamento.setNomeTipoTratamento(jComboTipoTratamento.getSelectedItem().toString());
            tipoTratamento = persisteTipoTratamento.retornarTipoTratamentoPeloNome(tipoTratamento);
            
            if(tipoTratamento != null){
                tratamentoTemp.setTipoTratamento(tipoTratamento);
                return true;
            }else{
                /**
                 * Caso o cargo não esteja cadastrado no banco de dados, entrará aqui.
                 * Isso provavelmente não acontecerá, mas é bom deixar um tratamento.
                 */
                
                JOptionPane.showMessageDialog(null, "Tipo tratamento não cadastrado no sistema");
                return false;
            }
        }
        
        JOptionPane.showMessageDialog(null, "Selecione um Tipo de tratamento");
        jComboTipoTratamento.requestFocus();
        return false;
    }
     
    public void excluir(){
        operacao = 2;
        ativarBotoesNovoEditarExcluir();
        JOptionPane.showMessageDialog(null, "Para desativar o tratamento clique em Salvar!");
    }
        
    private void fecharTela() {
        JDialog.setDefaultLookAndFeelDecorated(true);  
        int response = JOptionPane.showConfirmDialog(null, "Deseja realmente sair da tela de cadastro de tratamento?" , "Confirme",  
        JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);  
        if(response == JOptionPane.NO_OPTION) {  
            //não faz nada pois não precisa... vai dar o dialogo e voltar a tela... 
        } else if (response == JOptionPane.YES_OPTION) {  
                    dispose(); 
                }
    } 
        
        
    
    /**
     * Deixa a tela preparada para a atualização de um funcionário
     */
    public void editar(){
        operacao = 1;
        exibirTratamento();
        ativarCampos();
        ativarBotoesNovoEditarExcluir();
        jLabelCodigo.setEnabled(false);
        txtCodigo.setEnabled(false);
        
        
        tratamento = new Tratamento();
        tratamento = listaTratamento.get(posicao);
        
        txtNomeTratamento.requestFocus();
    }
    
    /**
     * Trava a tela e exibe o funcionário que estava antes
     */
    public void cancelar(){
        ativarBotoesIniciar();
        if(posicao < 0){
            limparCampos();
            jDtCadastro.setCalendar(null);
        }else{
            exibirTratamento();
        }
        
        desativarCampos();
    }
    
        
    public CadastroTratamento() {
        initComponents();
        this.setLocationRelativeTo(null);
        inicializarTela();
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanelBotoes = new javax.swing.JPanel();
        btnSair = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        btnSalvar = new javax.swing.JButton();
        btnPesquisar = new javax.swing.JButton();
        btnExcluir = new javax.swing.JButton();
        btnEditar = new javax.swing.JButton();
        btnNovo = new javax.swing.JButton();
        jPanelTratamento = new javax.swing.JPanel();
        jLabelNomeTratamento = new javax.swing.JLabel();
        jLabelDescricao = new javax.swing.JLabel();
        jLabelDuracao = new javax.swing.JLabel();
        jLabelValorTratamento = new javax.swing.JLabel();
        jLabelDtCadastro = new javax.swing.JLabel();
        txtNomeTratamento = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtDescricao = new javax.swing.JTextArea();
        jDtCadastro = new com.toedter.calendar.JDateChooser();
        txtValorTratamento = new javax.swing.JTextField();
        jLabelCodigo = new javax.swing.JLabel();
        txtCodigo = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jComboTipoTratamento = new javax.swing.JComboBox();
        jSHora = new javax.swing.JSpinner();
        jLabel1 = new javax.swing.JLabel();
        jSMinutos = new javax.swing.JSpinner();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("ERP BEAUTY CENTER - Cadastro de tratamento");
        setBackground(new java.awt.Color(255, 255, 255));
        setResizable(false);

        jPanelBotoes.setPreferredSize(new java.awt.Dimension(800, 45));

        btnSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Sair.png"))); // NOI18N
        btnSair.setToolTipText("SAIR");
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });

        btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Cancelar.png"))); // NOI18N
        btnCancelar.setToolTipText("LIMPAR");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        btnSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Salvar.png"))); // NOI18N
        btnSalvar.setToolTipText("SALVAR");
        btnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalvarActionPerformed(evt);
            }
        });

        btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Pesquisar.png"))); // NOI18N
        btnPesquisar.setToolTipText("PESQUISAR");
        btnPesquisar.setBorderPainted(false);
        btnPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPesquisarActionPerformed(evt);
            }
        });

        btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Excluir.png"))); // NOI18N
        btnExcluir.setToolTipText("EXCLUIR");
        btnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExcluirActionPerformed(evt);
            }
        });

        btnEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Editar.png"))); // NOI18N
        btnEditar.setToolTipText("ALTERAR");
        btnEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEditarActionPerformed(evt);
            }
        });

        btnNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Novo.png"))); // NOI18N
        btnNovo.setToolTipText("NOVO");
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanelBotoesLayout = new javax.swing.GroupLayout(jPanelBotoes);
        jPanelBotoes.setLayout(jPanelBotoesLayout);
        jPanelBotoesLayout.setHorizontalGroup(
            jPanelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelBotoesLayout.createSequentialGroup()
                .addGap(156, 156, 156)
                .addComponent(btnNovo)
                .addGap(5, 5, 5)
                .addComponent(btnEditar)
                .addGap(5, 5, 5)
                .addComponent(btnExcluir)
                .addGap(5, 5, 5)
                .addComponent(btnPesquisar)
                .addGap(5, 5, 5)
                .addComponent(btnSalvar)
                .addGap(5, 5, 5)
                .addComponent(btnCancelar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnSair))
        );
        jPanelBotoesLayout.setVerticalGroup(
            jPanelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelBotoesLayout.createSequentialGroup()
                .addGroup(jPanelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnNovo)
                    .addComponent(btnEditar)
                    .addComponent(btnExcluir)
                    .addComponent(btnPesquisar)
                    .addComponent(btnSalvar)
                    .addComponent(btnCancelar))
                .addGap(5, 5, 5))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelBotoesLayout.createSequentialGroup()
                .addComponent(btnSair)
                .addContainerGap())
        );

        jPanelTratamento.setBackground(new java.awt.Color(255, 255, 255));
        jPanelTratamento.setPreferredSize(new java.awt.Dimension(800, 300));

        jLabelNomeTratamento.setText("TRATAMENTO:");

        jLabelDescricao.setText("DESCRIÇÃO:");

        jLabelDuracao.setText("DURAÇÃO:");

        jLabelValorTratamento.setText("VALOR TRATAMENTO:");

        jLabelDtCadastro.setText("DATA CADASTRO:");

        txtDescricao.setColumns(20);
        txtDescricao.setRows(5);
        txtDescricao.setPreferredSize(new java.awt.Dimension(164, 100));
        jScrollPane1.setViewportView(txtDescricao);

        jLabelCodigo.setText("CÓDIGO:");

        jLabel2.setText("TIPO:");

        jComboTipoTratamento.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));

        jSHora.setModel(new javax.swing.SpinnerListModel(new String[] {"00", "01", "02", "03", "04", "05", "06", "07"}));

        jLabel1.setText(":");

        jSMinutos.setModel(new javax.swing.SpinnerListModel(new String[] {"00", "30"}));

        javax.swing.GroupLayout jPanelTratamentoLayout = new javax.swing.GroupLayout(jPanelTratamento);
        jPanelTratamento.setLayout(jPanelTratamentoLayout);
        jPanelTratamentoLayout.setHorizontalGroup(
            jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelTratamentoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabelCodigo)
                    .addComponent(jLabelDescricao)
                    .addComponent(jLabelNomeTratamento)
                    .addComponent(jLabelValorTratamento))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addGroup(jPanelTratamentoLayout.createSequentialGroup()
                        .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtNomeTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanelTratamentoLayout.createSequentialGroup()
                                .addComponent(txtValorTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabelDuracao)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jSHora, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel1)
                                .addGap(2, 2, 2)
                                .addComponent(jSMinutos, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jComboTipoTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabelDtCadastro)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jDtCadastro, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanelTratamentoLayout.setVerticalGroup(
            jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelTratamentoLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanelTratamentoLayout.createSequentialGroup()
                        .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelCodigo)
                            .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabelNomeTratamento, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(txtNomeTratamento, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelDescricao))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelTratamentoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelValorTratamento)
                            .addComponent(jLabelDuracao)
                            .addComponent(txtValorTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jSHora, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1)
                            .addComponent(jSMinutos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2)
                            .addComponent(jComboTipoTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelDtCadastro)))
                    .addComponent(jDtCadastro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(31, 31, 31))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanelBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanelTratamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanelBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelTratamento, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
        fecharTela();
    }//GEN-LAST:event_btnSairActionPerformed

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        cancelar();
    }//GEN-LAST:event_btnCancelarActionPerformed

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalvarActionPerformed
       if(preencherTratamento()){
            inicializarTela();
       }
    }//GEN-LAST:event_btnSalvarActionPerformed

    private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPesquisarActionPerformed
        PesquisarTratamento pesquisarTratamento = new PesquisarTratamento(this, true);
        pesquisarTratamento.setLocationRelativeTo(null);
        pesquisarTratamento.setVisible(true);
        
        ativarBotoesIniciar();
    }//GEN-LAST:event_btnPesquisarActionPerformed

    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed
        excluir();
    }//GEN-LAST:event_btnExcluirActionPerformed

    private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEditarActionPerformed
        editar();
    }//GEN-LAST:event_btnEditarActionPerformed

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoActionPerformed
        novo();
    }//GEN-LAST:event_btnNovoActionPerformed

    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnEditar;
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnSair;
    private javax.swing.JButton btnSalvar;
    private javax.swing.JComboBox jComboTipoTratamento;
    private com.toedter.calendar.JDateChooser jDtCadastro;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabelCodigo;
    private javax.swing.JLabel jLabelDescricao;
    private javax.swing.JLabel jLabelDtCadastro;
    private javax.swing.JLabel jLabelDuracao;
    private javax.swing.JLabel jLabelNomeTratamento;
    private javax.swing.JLabel jLabelValorTratamento;
    private javax.swing.JPanel jPanelBotoes;
    private javax.swing.JPanel jPanelTratamento;
    private javax.swing.JSpinner jSHora;
    private javax.swing.JSpinner jSMinutos;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextArea txtDescricao;
    private javax.swing.JTextField txtNomeTratamento;
    private javax.swing.JTextField txtValorTratamento;
    // End of variables declaration//GEN-END:variables

}